﻿using System;

namespace Oxage.Common
{
	public partial class Plugin<T>
	{
		#region Public properties
		/// <summary>
		/// Gets or sets a plugin name.
		/// </summary>
		public string Name
		{
			get;
			set;
		}

		/// <summary>
		/// Gets or sets a plugin description.
		/// </summary>
		public string Description
		{
			get;
			set;
		}

		/// <summary>
		/// Gets or sets a relative path to embedded icon resource.
		/// </summary>
		public string Icon
		{
			get;
			set;
		}

		/// <summary>
		/// Gets or sets a full path to the loaded assembly file.
		/// </summary>
		public string Filename
		{
			get;
			set;
		}

		/// <summary>
		/// Gets or sets a loaded plugin instance.
		/// </summary>
		public T Item
		{
			get;
			set;
		}
		#endregion

		#region Public methods
		public override string ToString()
		{
			return this.Name;
		}
		#endregion
	}
}
